Soru & Cevap

xcode MS SQL çoklu sorgu

03.10.2019 - 09:02

Merhabalar.
Xcode swift projem için MS SQL server bağlantılarıyla bazı veriler çekmem gerekiyor. https://github.com/martinrybak/SQLClient linkindeki Objective-C eklentisini kullanarak başarılı bağlantı gerçekleştirebiliyorum. Normalde bir viewcontroller altında tek bir SQL server bağlantısı gerçekleştireceğim zaman problemsiz bağlanıp hem veri çekebiliyorum hem de insert,delete veya update işlemlerini yapabiliyorum. Ancak form yüklendiğinde birden fazla SQL sorgusu çalıştıracak isem burada problem yaşıyorum. Örneğin:
 

import UIKit

class ZVC: UIViewController, SQLClientDelegate {
    func error(_ error: String!, code: Int32, severity: Int32) {
        print("\(error!) \(code) \(severity)")
    }

    var strPass:String = "",strUName:String = "",strDBName:String = "",strIP:String = ""
    var client1:SQLClient!
    var client2:SQLClient!
    var uSonuc1: [String] = []
    var uSonuc2: [String] = []


    override func viewDidLoad() {
        super.viewDidLoad()
        client1 = SQLClient.sharedInstance()!
        client2 = SQLClient.sharedInstance()!

        let defaults = UserDefaults.standard
        if let str1 = defaults.string(forKey: "DBIP") { strIP = str1 }
        if let str2 = defaults.string(forKey: "DBName") { strDBName = str2 }
        if let str3 = defaults.string(forKey: "DBUser") { strUName = str3 }
        if let str4 = defaults.string(forKey: "DBPass") { strPass = str4 }

        client1 = SQLClient.sharedInstance()!
        client1.delegate = self
        client1.connect(strIP,username: strUName,password: strPass,database: strDBName){ success in
            if success {
                self.client1.execute("select MUSTERI_ADI as SONUC1 from MUSTERI order by MUSTERI_ADI") {
                    results in
                    for table in results as! [[[String:AnyObject]]] {
                        for row in table {
                            for (columnName, value) in row {
                                print("\(columnName) = \(value)")
                                if(columnName == "SONUC1"){
                                    let newVal = value as? String ?? ""
                                    self.uSonuc1.append(newVal)
                                }}}}
                    self.client1.disconnect()
                }}
            else{}
        }

         client2 = SQLClient.sharedInstance()!
         client2.delegate = self
         client2.connect(strIP,username: strUName,password: strPass,database: strDBName){ success in
         if success {
         self.client2.execute("SELECT UserId AS SONUC2 FROM Usertbl") {
         results in
         for table in results as! [[[String:AnyObject]]] {
         for row in table {
         for (columnName, value) in row {
         print("\(columnName) = \(value)")
         if(columnName == "SONUC2"){
         let newVal = value as? String ?? ""
         self.uSonuc2.append(newVal)
         }}}}
         self.client2.disconnect()
         }}
         else{}
         }
    }
}

Build ettiğimde hata vermiyor, ancak programı simulator'de çalıştırdığımda ObjcSQLClient klasöründeki SQLClient.m dosyasının dbloginfree(login); satırının karşısında hata mesajı veriyor ve program kapanıyor.
Bu sorunu nasıl aşabilirim?

129 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user cbozkurt367
cbozkurt367
05.12.2019 - 03:09
Yazdığın kodda küçük bir sıkıntı olmuştur bunu düzeltirsen sorun çözülür